package com.suning.sawp.member.dao;

import java.util.Date;
import java.util.List;

import com.suning.sawp.dto.storeman.Category;
import com.suning.sawp.member.dto.MemExpandDataOfPlaceDto;
import com.suning.sawp.member.vo.MemExpandDataOfCateVo;
import com.suning.sawp.member.vo.MemExpandDataOfEmployeeVo;
import com.suning.sawp.member.vo.MemExpandDataOfStoreVo;

/**
 * 会员拓展销售转换数据Dao接口 〈一句话功能简述〉<br>
 * 〈功能详细描述〉
 *
 * @author 15050519
 * @see [相关类/方法]（可选）
 * @since [产品/模块版本] （可选）
 */
public interface MemExpandConversionDao {

    /**
     * 查询总部，大区，分公司销售转换数据 功能描述: <br>
     * 〈功能详细描述〉
     *
     * @param activityId
     * @param source
     * @param mode
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    List<MemExpandDataOfStoreVo> queryExpandDataOfStore(Long activityId, Integer source, Integer mode);

    /**
     * 查询门店品类销售转换数据 功能描述: <br>
     * 〈功能详细描述〉
     *
     * @param activityId
     * @param source
     * @param mode
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    List<MemExpandDataOfCateVo> queryExpandDataOfStoreCate(Long activityId, String storeCode, Integer source,
            Integer mode);

    /**
     * 查询门店品类下员工销售转换数据 功能描述: <br>
     * 〈功能详细描述〉
     *
     * @param activityId
     * @param cateCode
     * @param source
     * @param mode
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    List<MemExpandDataOfEmployeeVo> queryExpandDataOfEmployee(Long activityId, String storeCode, String cateCode,
            Integer source, Integer mode);

    /**
     * 查询拓展地点销售转化数据 功能描述: <br>
     * 〈功能详细描述〉
     *
     * @param startDate
     * @param endDate
     * @param placeName
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    List<MemExpandDataOfPlaceDto> queryExpandDataOfPlace(String storeCode, Date startDate, Date endDate, String placeName);

    /**
     * 处理某一天的销售转换数据到明细表
     * 功能描述: <br>
     * 〈功能详细描述〉
     *
     * @param endDate
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    void processExpandConversionData(Date endDate);
    
    /**
     * 查询门店活动拓展品类
     * 功能描述: <br>
     * 〈功能详细描述〉
     *
     * @param activityId
     * @param storeCode
     * @return
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    List<Category> queryActivityStoreCategorys(Long activityId, String storeCode);
}
